package com.jtny.nytb.dataparam.vo;

import com.jtny.nytb.valid.annotation.ValueValid;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

@Data
@ApiModel("数据参量管理对象")
public class ConfigDataParamManagementVO implements Serializable {

    @ApiModelProperty("参量id")
    private Long id;
    /**
     * 参量名称
     */
    @ApiModelProperty("参量名称")
    private String name;
    /**
     * 参量编码
     */
    @ApiModelProperty("参量编码")
    private String code;
    /**
     * 参量来源：1-设备自动采集，2-系统计算，3-常量，4-手动填报
     */
    @ApiModelProperty(value = "参量来源：1-设备自动采集，2-系统计算，3-常量，4-手动填报",required = true)
    @ValueValid(intValues = {1, 2, 3, 4}, message = "参量来源不能为空", ignoreEmpty = false)
    private Integer source;

    @ApiModelProperty("参量来源名称")
    private String sourceName;
    /**
     * 别名
     */
    @ApiModelProperty("别名")
    private String alias;
    /**
     * 数据类型：1-实时量，2-累计量
     */
    @ApiModelProperty(value = "数据类型：1-实时量，2-累计量",required = true)
    @ValueValid(intValues = {1, 2}, message = "数据类型不能为空", ignoreEmpty = false)
    private Integer dataType;
    /**
     * 设备id
     */
    @ApiModelProperty("设备id")
    private Long deviceId;

    @ApiModelProperty("参量标识")
    private String reportIdentifier;

    @ApiModelProperty("统一参量标识")
    private String unifiedIdentifier;

    @ApiModelProperty("统一参量标识名称")
    private String unifiedIdentifierName;

    @ApiModelProperty("是否来自规则")
    private Boolean isFromRule;

    @ApiModelProperty("数据类型名称")
    private String dataTypeName;
    /**
     * 默认图标：
     */
    @ApiModelProperty("默认图表: '1': '流向图 ,'2': '柱状图','3': '折线图','4': '饼图'")
    private Integer chart;
    /**
     * 小数点位
     */
    @ApiModelProperty("小数点位")
    private Integer digit;
    /**
     * 记点频率数据
     */
    @ApiModelProperty("记点频率数据")
    private Integer frequency;
    /**
     * 记点频率单位
     */
    @ApiModelProperty("记点频率单位")
    private String frequencyUnit;
    /**
     * 计量长度id
     */
    @ApiModelProperty("计量长度单位")
    private String measurementUnit;
    /**
     * 算法名称
     */
    @ApiModelProperty("算法名称")
    private String algorithmName;
    /**
     * 描述
     */
    @ApiModelProperty("描述")
    private String paramDescribe;

    /**
     * 算法id
     */
    @ApiModelProperty("算法id")
    private Long algorithmId;

    @ApiModelProperty("创建人")
    private String creatorName;

    @ApiModelProperty("生效开始时间")
    private Long createTime;

    @Setter
    @ApiModelProperty("数据参量公式对象")
    private ConfigAlgorithVO configAlgorithVO;

    /**
     * 参数列表
     */
    @Setter
    private List<ConfigParamVO> configParamVOList;

    /**
     * 警告项列表
     */
    @Setter
    @ApiModelProperty("警告项列表")
    private List<ConfigAlarmVO> configAlarmVOList;

}

